// 日志类型
export enum TraceTypes {
  // PV/UV
  PAGE_VIEW = "PageView",
  // 事件
  EVENT = "EVENT",
  // 性能
  PERF = "Performance",
  // 资源
  RESOURCE = "Resource",
  // 动作、行为类型
  ACTION = "Action",
  // 请求类型
  FETCH = "Fetch",
  // 代码错误
  CODE_ERROR = "CodeError",
  // 日志
  CONSOLE = "Console",
  // 其它
  CUSTOMER = "Customer",
}

// 浏览器类型
export enum BrowserType {
  // 手机端浏览器
  MOBILE = "mobile",
  // PC浏览器
  PC = "pc",
  // webview
  WEBVIEW = "webview",
  // 小程序
  MINI_PROGRAM = "miniProgram",
  // 未知
  UNKNOWN = "unknown",
}

// 日志级别
export enum TraceLevelType {
  // 告警级别
  error = "error",
  // 预警级别
  warn = "warn",
  // 普通日志
  info = "info",
  // 调试日志
  debug = "debug",
}

// 客户端类型
export enum TraceClientTypes {
  // 安卓
  ANDROID_H5 = "android",
  // iOS
  IOS_H5 = "ios",
  // PC端
  PC_H5 = "pc",
  // 浏览器
  BROWSER_H5 = "browser",
}

// 行为分类
export enum BreadcrumbsCategorys {
  // 网络请求
  Http = "http",
  // 用户操作
  User = "user",
  // 调试
  Debug = "debug",
  // 抛异常
  Exception = "exception",
  // 生命周期
  Lifecycle = "lifecycle",
}

// 日志类型
export enum BreadcrumbTypes {
  // 路由跳转
  ROUTE = "Route",
  // 用户点击
  CLICK = "UI.Click",
  // 控制台打印
  CONSOLE = "Console",
  // 网络请求
  FETCH = "Fetch",
  // 未处理异常
  UNHANDLEDREJECTION = "Unhandledrejection",
  // 资源
  RESOURCE = "Resource",
  // 代码错误
  CODE_ERROR = "Code Error",
  // 其他
  CUSTOMER = "Customer",
}

// 问题级别
export enum TraceDataSeverity {
  // 其他
  Else = "else",
  // 错误级别
  Error = "error",
  // 告警级别
  Warning = "warning",
  // 日志级别
  Info = "info",
  // 调试级别
  Debug = "debug",
  // 低危级别
  Low = "low",
  // 普通级别
  Normal = "normal",
  // 高危级别
  High = "high",
  // 极其严重
  Critical = "critical",
}

// 错误日志类型
export enum TraceDataTypes {
  // 未知
  UNKNOWN = "UNKNOWN",
  // 未知函数
  UNKNOWN_FUNCTION = "UNKNOWN_FUNCTION",
  // js 脚本
  JAVASCRIPT = "JAVASCRIPT",
  // 打印信息
  LOG = "LOG",
  // 网络请求
  HTTP = "HTTP",
  // 资源
  RESOURCE = "RESOURCE",
  // 异步
  PROMISE = "PROMISE",
  // 路由
  ROUTE = "ROUTE",
  // 性能
  PERF = "PERF",
  // UI 框架
  VUE = "VUE",
  REACT = "REACT",
  // ...更多框架
}

export enum TracePerfRating {
  GOOD = "good",
  NEEDS_IMPROVEMENT = "needs improvement",
  POOR = "poor",
}

export enum SendType {
  fetch = "fetch",
  xhr = "xhr",
  beacon = "beacon",
  img = "img"
}
